package cn.itcast.erp.service.impl;

import cn.itcast.erp.dao.mapper.GoodstypeMapper;
import cn.itcast.erp.entity.Goodstype;

import cn.itcast.erp.entity.utils.AjaxResult;
import cn.itcast.erp.service.GoodstypeService;
import org.apache.poi.hssf.usermodel.*;
import org.apache.poi.ss.usermodel.*;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.io.*;
import java.util.List;


@Service("goodstypeServcie")
public class GoodstypeServiceImpl implements GoodstypeService {

    @Resource
    private GoodstypeMapper goodstypeMapper;

    //添加
    @Override
    public int insertGoodstype(Goodstype goodstype) {
        if (goodstype != null) {
            int i = this.goodstypeMapper.insertGoodstype(goodstype);
            return i ;
        }
        return -1;
    }


    //删除
    @Override
    public int deleteGoodstype(Long uuid) {
        if (uuid != null) {
            int i = this.goodstypeMapper.deleteGoodstype(uuid);
            return i;
        }
        return -1;
    }

    //修改
    @Override
    public int updateGoodstype(Goodstype goodstype) {
        if (goodstype != null) {
            int i = goodstypeMapper.updateGoodstype(goodstype);
            return i;
        }
        return -1;
    }

    //按条件查询
    @Override
    public AjaxResult findGoodstype(Goodstype goodstype) {
        int total = this.goodstypeMapper.count(goodstype);
        List<Goodstype> rows =this.goodstypeMapper.findGoodstype(goodstype);
        AjaxResult ar = new AjaxResult();
        ar.setTotal(total);
        ar.setRows(rows);
        return ar;
    }

    //查询所有
    @Override
    public List <Goodstype> findAllGoodstype() {
        return this.goodstypeMapper.findAllGoodstype();
    }

    //查询By id
    @Override
    public Goodstype findGoodstypeById(Long uuid) {
        return this.goodstypeMapper.findGoodstypeById (uuid);
    }


    // 导出Excel
    @Override
    public InputStream getAllGoodstypeEx() {
        //添加数据
        List<Goodstype> goodstype = goodstypeMapper.getAllGoodstypeEx();

        HSSFWorkbook sheets = new HSSFWorkbook();  // 定义一个新的工作簿
        Sheet sheet = sheets.createSheet("商品类型信息");  // 创建第一个新的Sheet页

        //创建第一行
        Row row1 = sheet.createRow(0);
        sheet.setColumnWidth(0, 20 * 256);
        sheet.setColumnWidth(1, 30 * 256);

        //给表头第一行一次创建单元格
        String[] headers = {"商品类型","商品类型名称"};
        for(int i = 0; i < headers.length; i++){
            row1.createCell(i).setCellValue(headers[i]);
            row1.setHeightInPoints(30);//设置行的高度是30
        }

        //向单元格里添加数据
        for(short i=0;i<goodstype.size();i++){
            row1 = sheet.createRow(i+1);
            row1.createCell(0).setCellValue(goodstype.get(i).getUuid());
            row1.createCell(1).setCellValue(goodstype.get(i).getName());
            row1.setHeightInPoints(30);//设置行的高度是30
        }
        //字节流缓存区
        ByteArrayOutputStream bo = new ByteArrayOutputStream();
        try {
            sheets.write(bo);
        } catch (IOException e) {
            e.printStackTrace();
        }
        return new ByteArrayInputStream(bo.toByteArray());
    }


}